package ProcessosBasicos;

import java.io.Serializable;
import javax.swing.JOptionPane;

/**
 * Comporta características de formato de horário e faz o controle das mesmas
 * @author Henrique
 */
public class Horario implements Serializable {
    private String hr;
    private String mn;

    /**
     * 
     * @param hr hora
     * @param mn minuto
     */
    public Horario(String hr, String mn) {
        this.hr = hr;
        this.mn = mn;
    }

    /**
     * 
     * @return String representando a hora
     */
    public String getHora() {
        return hr;
    }

    /**
     * 
     * @return String representando o minuto
     */
    public String getMin() {
        return mn;
    }

    /**
     * Define a hora
     * @param hr Hora
     */
    public void setHora(String hr) {
        this.hr = hr;
    }

    /**
     * Define o minuto
     * @param mn Minuto
     */
    public void setMin(String mn) {
        this.mn = mn;
    }
    
    /**
     * Valida o formato de um horário
     * @return true se é um horário válido, false se não.
     */
    public boolean validaHorario() {
        boolean flag = true;
        if (Integer.parseInt(hr) < 0 || Integer.parseInt(hr) > 23) {
            flag = false;
        }
        if (Integer.parseInt(mn) < 0 || Integer.parseInt(mn) > 59) {
            flag = false;
        }
        if (Integer.parseInt(hr) == 0 && Integer.parseInt(mn) == 0) {
            JOptionPane.showMessageDialog(null, "<html><center>Horário não suportado pelo sistema!<br>Caso o cliente entre a Meia-Noite,<br>defina sua entrada como 00:01.</center>");
            return false;
        }
        if (!flag) {
            JOptionPane.showMessageDialog(null, "<html><center>Horário Inválido!</center>");
        }
        return flag;
    }
    
    public int horaEmMinutos() {
        int minutos = 0;
        minutos = (Integer.parseInt(hr))*60;
        minutos = minutos + Integer.parseInt(mn);
        return minutos;
    }
}